home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 March / PCWorld_2005-03_cd.bin / software / topware / sandra / san2005-1037-w64-sso.exe / {app} / examples / Oracle Schema.sql < prev    next >
Text File  |  2004-11-06  |  4KB  |  193 lines

  1.  
  2. --
  3. -- Oracle 8i/9i/10g Schema for Sandra Report
  4. --
  5. -- Schema is assumed to have been created already.
  6. -- No extents included, please add as required.
  7. --
  8. -- Copyright (c) 1995-2005, SiSoftware Ltd.
  9. -- All Rights Reserved.
  10.  
  11. --
  12. -- Kill all tables
  13. --
  14.  
  15. DROP TABLE TItem;
  16.  
  17. DROP TABLE TControl;
  18.  
  19. DROP TABLE TItemGroup;
  20.  
  21. DROP TABLE TDevice;
  22.  
  23. DROP TABLE TClass;
  24.  
  25. DROP TABLE TModule;
  26.  
  27. DROP TABLE TReport;
  28.  
  29. DROP TABLE TIDCount;
  30.  
  31. DROP VIEW VItemNGroup;
  32.  
  33. --
  34. -- Kill all sequences
  35. --
  36.  
  37. DROP SEQUENCE seqTItem;
  38.  
  39. DROP SEQUENCE seqTControl;
  40.  
  41. DROP SEQUENCE seqTItemGroup;
  42.  
  43. DROP SEQUENCE seqTDevice;
  44.  
  45. DROP SEQUENCE seqTClass;
  46.  
  47. DROP SEQUENCE seqTModule;
  48.  
  49. DROP SEQUENCE seqTReport;
  50.  
  51. --
  52. -- Create new sequences
  53. --
  54.  
  55. CREATE SEQUENCE seqTItem;
  56.  
  57. CREATE SEQUENCE seqTControl;
  58.  
  59. CREATE SEQUENCE seqTItemGroup;
  60.  
  61. CREATE SEQUENCE seqTDevice;
  62.  
  63. CREATE SEQUENCE seqTClass;
  64.  
  65. CREATE SEQUENCE seqTModule;
  66.  
  67. CREATE SEQUENCE seqTReport;
  68.  
  69. --
  70. -- Create new tables
  71. --
  72.  
  73. CREATE TABLE TReport (
  74.     ID            INTEGER PRIMARY KEY,
  75.     
  76.     ProgVersion        INTEGER NOT NULL,
  77.     BuildVersion        INTEGER NOT NULL,
  78.     Completed        NUMBER(1) NOT NULL
  79. );
  80.  
  81. CREATE TABLE TModule (
  82.     ID            INTEGER PRIMARY KEY,
  83.     ReportID        INTEGER REFERENCES TReport(ID),
  84.     
  85.     Capabilities        INTEGER NOT NULL,
  86.     Col1Percent        NUMBER(8,4) NOT NULL,
  87.     NotRegOK        NUMBER(1) NOT NULL,
  88.     Name            VARCHAR2(255) NOT NULL,
  89.     TypeID            INTEGER NOT NULL,
  90.     HelpID            INTEGER NOT NULL
  91. );
  92.  
  93. CREATE TABLE TClass (
  94.     ID            INTEGER PRIMARY KEY,
  95.     ModuleID        INTEGER REFERENCES TModule(ID),
  96.     
  97.     Name            VARCHAR2(255) NOT NULL,
  98.     IconID            INTEGER NOT NULL,
  99.     HelpID            INTEGER NOT NULL
  100. );
  101.  
  102. CREATE TABLE TDevice (
  103.     ID            INTEGER PRIMARY KEY,
  104.     ModuleID        INTEGER REFERENCES TModule(ID),
  105.     ClassID            INTEGER REFERENCES TClass(ID),
  106.     
  107.     Name            VARCHAR2(255) NOT NULL,
  108.     IconID            INTEGER NOT NULL,
  109.     HelpID            INTEGER NOT NULL
  110. );
  111.  
  112. CREATE TABLE TItemGroup (
  113.     ID            INTEGER PRIMARY KEY,
  114.     ModuleID        INTEGER REFERENCES TModule(ID),
  115.     ClassID            INTEGER REFERENCES TClass(ID),
  116.     DeviceID        INTEGER REFERENCES TDevice(ID),
  117.     
  118.     Name            VARCHAR2(255) NOT NULL,
  119.     IconID            INTEGER NOT NULL,
  120.     HelpID            INTEGER NOT NULL
  121. );
  122.  
  123. CREATE TABLE TItem (
  124.     ID            INTEGER PRIMARY KEY,
  125.     ModuleID        INTEGER REFERENCES TModule(ID),
  126.     ClassID            INTEGER REFERENCES TClass(ID),
  127.     DeviceID        INTEGER REFERENCES TDevice(ID),
  128.     GroupID            INTEGER REFERENCES TItemGroup(ID),
  129.     
  130.     Name            VARCHAR2(255) NOT NULL,
  131.     DataValue        VARCHAR2(255),
  132.     IconID            INTEGER NOT NULL,
  133.     TypeID            INTEGER NOT NULL,
  134.     HelpID            INTEGER NOT NULL
  135. );
  136.  
  137. CREATE TABLE TControl (
  138.     ID            INTEGER PRIMARY KEY,
  139.     ModuleID        INTEGER REFERENCES TModule(ID),
  140.     ClassID            INTEGER REFERENCES TClass(ID),
  141.     DeviceID        INTEGER REFERENCES TDevice(ID),
  142.     
  143.     Name            INTEGER NOT NULL,
  144.     DataValID        INTEGER NOT NULL,
  145.     DataValue        VARCHAR2(255)
  146. );
  147.  
  148. CREATE TABLE TIDCount (
  149.     TableName        VARCHAR2(10) PRIMARY KEY,
  150.     CurrentID        INTEGER NOT NULL
  151. );
  152.  
  153. --
  154. -- Set-up keys/indexes
  155. --
  156.  
  157. CREATE INDEX ndxModuleName ON TModule(Name);
  158.  
  159. CREATE INDEX ndxCtrlName ON TControl(Name);
  160.  
  161. CREATE INDEX ndxGroupName ON TItemGroup(Name);
  162.  
  163. CREATE INDEX ndxItemName ON TItem(Name);
  164.  
  165. --
  166. -- Views
  167. --
  168.  
  169. CREATE VIEW VItemNGroup
  170. AS
  171. SELECT
  172. TItemGroup.ID AS TIG_ID, TItemGroup.ModuleID AS TIG_ModuleID, TItemGroup.ClassID AS TIG_ClassID,
  173. TItemGroup.DeviceID AS TIG_DeviceID, TItemGroup.IconID AS TIG_IconID, TItemGroup.HelpID AS TIG_HelpID,
  174. TItemGroup.Name AS TIG_Name, TItem.ID AS TI_ID, TItem.IconID AS TI_IconID, TItem.HelpID AS TI_HelpID,
  175. TItem.Name AS TI_Name, TItem.TypeID, TItem.DataValue
  176. FROM TItemGroup, TItem
  177. WHERE TItem.GroupID=TItemGroup.ID;
  178.  
  179. --
  180. -- Inserts
  181. --
  182.  
  183. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TItem', 1);
  184. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TControl', 1);
  185. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TItemGroup', 1);
  186. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TDevice', 1);
  187. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TClass', 1);
  188. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TModule', 1);
  189. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TReport', 1);
  190.  
  191.  
  192.  
  193.